import { showToast } from "vant";
import {ref} from 'vue';
export default  function getImageUrl(url: string){
    return new URL(`../assets/images/${url}`, import.meta.url).href
 }
 // H5复制方法
export function copyTxt(str:string) {
	let aux = document.createElement("input");
	aux.setAttribute("value", str);
	document.body.appendChild(aux);
	aux.select();
	document.execCommand("copy");
	document.body.removeChild(aux);
	showToast('复制成功')
}


//打电话
export	const phoneNumber = ref('18137589191').value
export function serviceCall():void{
	let a = document.createElement('a');      // 创建一个a节点插入的document
    let event = new MouseEvent('click')          // 模拟鼠标click点击事件
   	a.href =  `tel:${phoneNumber}`;             // 将图片的src赋值给a节点的href
    a.dispatchEvent(event)    //移除点击事件
    a.remove(); // 把创建的元素删除
}


/**
 * 节流原理：在一定时间内，只能触发一次
 * 
 * @param {Function} func 要执行的回调函数 
 * @param {Number} wait 延时的时间
 * @param {Boolean} immediate 是否立即执行
 * @return null
 */
let timer 
let flag:boolean;
export function throttle(func:Function, wait = 1000, immediate = true) {
	if (immediate) {
		if (!flag) {
			flag = true;
			// 如果是立即执行，则在wait毫秒内开始时执行
			typeof func === 'function' && func();
			timer = setTimeout(() => {
				flag = false;
			}, wait);
		}
	} else {
		if (!flag) {
			flag = true
			// 如果是非立即执行，则在wait毫秒内的结束处执行
			timer = setTimeout(() => {
				flag = false
				typeof func === 'function' && func();
			}, wait);
		}
		
	}
};

//防抖
export const debounce = (func:()=>{}, time = 1000, context) => {
	let timer: NodeJS.Timeout | null = null
	return function(...args:Array<any>) {
		if (timer) {
			clearTimeout(timer)
		}
		timer = setTimeout(() => {
			timer = null
			func.apply(context, args)
		}, time)
	}
}


//检测手机是否合法
export const testPhone = (phone:string):boolean => {
	const phonePreg = /^1\d{10}$/
	if (!phonePreg.test(phone)) {
		return false
	}
	return true
}